package enumclass;

/**
 * @author: wuhao
 * @since: 2021/5/4 16:52
 * 枚举类的使用主要内容:
 * 1.如何自定义枚举类?
 * 2.如何使用enum定义枚举类?
 * 3.enum类的主要方法?
 * 4.实现接口的枚举类?
 */
public class EnumStudy {
    /**
     什么时候使用枚举类?(类的对象只有有限个，确定的。举例如下：)
      星期：Monday(星期一)、......、Sunday(星期天)
      Man(男)、Woman(女)
      季节：Spring(春天)......Winter(冬天)
     总结: 当需要定义一组常量时,强烈建议使用枚举类!

     枚举类的实现:
      jdk1.5 之前需要自定义实现枚举类
      jdk1.5 之后新增的enum关键字用于定义枚举类
     若枚举类只有一个对象,则可以作为一种单例模式的实现方式

     枚举类的属性:
     枚举类对象的属性不可以被改动,所以使用private final 修饰
     枚举类的使用private final 修饰的属性应该在构造器中为其赋值
     若枚举类显示的定义了带参数的构造器,则在列出枚举值时也必须对应的传入参数

     enum类的主要方法:
      values()方法：返回枚举类型的对象数组。该方法可以很方便地遍历所有的
     枚举值。
      valueOf(String str)：可以把一个字符串转为对应的枚举类对象。要求字符
     串必须是枚举类对象的“名字”。如不是，会有运行时异常：
     IllegalArgumentException。
      toString()：返回当前枚举类对象常量的名

     实现接口的枚举类?
      和普通 Java 类一样，枚举类可以实现一个或多个接口
      若每个枚举值在调用实现的接口方法呈现相同的行为方式，则只
     要统一实现该方法即可。
      若需要每个枚举值在调用实现的接口方法呈现出不同的行为方式,
     则可以让每个枚举值分别来实现该方法
     */
}
